#!/bin/sh

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
DESC="Check WLAN connect and restart Gitea" 


CMDGETIP='ifconfig -a | grep inet | grep -v 127.0.0.1 | grep -v inet6 | awk '\''{print $2}'\'' | tr -d "addr:"'

SLEEPT=3

GiteaHostNameOrg=localhost  #原本的gitea主机名
GiteaHostName=           #这里留空表示用局域网的ip作为主机名
GiteaINIorg=app.ini.org #原始的配置文件，修改localhost字符串后覆盖到gitea的调用的配置文件
GiteaINI=app.ini
GiteaINIPath=/etc/gitea
GiteaINIFile=${GiteaINIPath}/${GiteaINI}
GiteaINIFileOrg=${GiteaINIPath}/${GiteaINIorg}

IPaddr=$(eval $CMDGETIP)
IPaddrLen=0


# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

#主死循环检测 ip地址是否正常
while [ "1" = "1" ];
do
	#检查 ip地址是否正常
    	IPaddr=$(eval $CMDGETIP)
	IPaddrLen=${#IPaddr}
	
	if [ $IPaddrLen -gt 3 ] ; then #网络是正常的 进行下一次循环
		sleep $SLEEPT
		continue
	fi

	if [ $IPaddrLen -lt 4 ]; then 
		echo -e "网络断开了\n"

		while [ "1" = "1" ]; do	#再次循环检测ip是否正常
            		IPaddr=$(eval $CMDGETIP)
			IPaddrLen=${#IPaddr}
			
			if [ $IPaddrLen -gt 3 ]; then #正常了就重新设置gitea的app.ini 再重启gitea服务
					echo -e "网络重新连接了，重启gitea服务\n"
					
                    if [ -n "${GiteaHostName}" -o -n "${IPaddr}" ]; then
                    service gitea stop 
                    fi
                    
                    sleep $SLEEPT
                    cp -f $GiteaINIFileOrg $GiteaINIFile
                    
                    if [ -n "${GiteaHostName}" ]; then 
                    sed -i $GiteaINIFile -e "s/${GiteaHostNameOrg}/${GiteaHostName}/gi" 
                    elif [ -n "${IPaddr}" ]; then 
                    sed -i $GiteaINIFile -e "s/${GiteaHostNameOrg}/${IPaddr}/gi" 
                    fi
                    
                    if [ -n "${GiteaHostName}" -o -n "${IPaddr}" ]; then
                    service gitea start 
                    fi
                    
					break  #重启完成 退出连接到网络检测
			fi

			sleep $SLEEPT
		done
	fi

	sleep $SLEEPT
done



